One challenge associated with developing applications and other code is protecting sensitive portions of the code from being modified, disabled, or reverse engineered. For example, protection of code portions designed to implement electronic licensing and/or digital rights management for an application module may be performed to prevent third parties from working around the code to illegitimately use and/or distribute the application module. A developer may add some protective measures directly while source coding the application, however, this may be quite burdensome and time consuming for the developer. Another approach involves applying protection to compiled binary files after the files are output by the compiler. However, obfuscating already compiled binaries can make some binaries unstable, limits the types of obfuscation and code optimizations available, and adds complexity and time to the development process. Moreover, some techniques used for traditional obfuscation are fairly straightforward to detect at runtime or through static analysis of binaries on disk, particularly by sophisticated hackers. These and other complexities of traditional obfuscation techniques act as barriers that may make it inefficient or prohibitive for developers to add effective protection to their code.